In a typical graphics processing system, the processing elements, such as vertices and/or pixels, are processed through multiple stages providing for the processing of graphics information including application of textures and other processing instructions. These stages include transforming a three-dimensional image into a two-dimensional screen. Graphics rendering is like a manufacturing assembly line with each stage adding something to the previous one in a pipeline architecture.
Generally, each of these stages is programmed individually to complete a particular processing task. However during processing of the image, these stages act as a single “black box.” The graphics information enters the pipeline or processing stream, and is processed by the various stages. The graphics information is then displayed on the display. Typically, a programmer or developer has no insight into each of the intermediate stages of the pipeline or processing stream, and only can see the input into the stream and the output to be displayed on a display. However during development of applications, programmers or developers desire insight into information processed during these stages.